home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1994 March
/
Internet Info CD-ROM (Walnut Creek) (March 1994).iso
/
networking
/
ip
/
ka9q
/
xobbs.arc
/
docs.xo
next >
Wrap
Text File
|
1989-05-03
|
9KB
|
216 lines
DOCUMENTATION FOR VERSION 1.3 OF W2XO BBS
The W2XO PBBS for use with KA9Q's NET tcp/ip networking program
is written for Unix SysV systems to allow multi-user PBBS service
to the AX25 community. As it is a normal Unix executable file,
the PBBS may also be accessed by telephone modem or locally on any
terminal of the system.
Local Invocation of the PBBS is done by typing "xobbs <call>" at
a system prompt.
In the AX25 support mode, the PBBS is spawned by NET, using a
modified version of ax25cmd.c, ax25subr.c and ax25.c.
Input to and output from the PBBS are routed to and from NET via
System V Message queues. NET passes the user's call to the PBBS
for log-in purposes.
There are four Sys V IPC message queues used for Communication
between NET and XOBBS. All data going to NET for output is
sent on the 'smsgqid'. All incoming data is received by the
XOBBS from 'net' on the 'rsmgqid'. There are also two control
message queues called 'rcmsgqid' and 'scmsgqid' which are used
to exchange control and syncronization messages. Steering of
the messages from and several concurrent XOBBS instances is
done by using the process ID of the bbs to which the message
is addressed as the IPC message type. Messages from a bbs to
'net' are sent with the bbs process id as a message type also,
so that 'net' knows from whence they came. Sys V IPC allows
selective receiving of messages from the queue by type.
The first two queues are basically ascii text to and from
the BBS and NET. The messages on the second(control) set of
queues consists of 'kill me' messages (K) to NET from the bbs
when the user disconnects or the forwarder is done, or 'go to
next forwarding session' , etc when forwarding PBBS mail.
HOMEDIR
The home directory of the bbs should be entered in
The makefile. Change the definition to that of the directory in
which you wish to run the bbs.
CONFIGURATION FILE
Somewhat similarly to the WA7MBL and W0RLI ms-dos PBBS programs,
XOBBS has a configuration file. CONFIG.XO contains the names
of the directories and files used by the PBBS, allowing some
flexibility of configuration. This file will be expanded in
the future to allow various prompts, timeouts, etc.
MULTI-USER MAIL SCHEME
The PBBS uses a "mail header" file which duplicates the first line of
the message file. Each message is wholly self-contained in its own file.
Messages are originally written to a directory specified as
"tempdir" in the CONFIG.XO file. A mail daemon process, MAILDAEMON.C
is awakened by any new message filed or old message deleted from
the TEMPDIR, by user signal 16, on which it is sleeping. MAILDAEMON
scans TEMPDIR and takes appropriate action based on the TOCALL
and ATBBS fields in the message header and the contents of the
file 'dist' the directory 'fwding'. If the message is addressed to
some other ATBBS than W2XO (or none), then first the DIST file
is scanned for a match between the ATBBS field and a mailing
distribution list name. If a match occurs, then a copy of the
message is filed in MAILDIR and given the next message number
in sequence as the filename. Links are then made to the
message file to files in the FWDING directory which contain
the call letters of the PBBS to which distribution is to be made
followed by unique characters (a concatenation of process number in
ascii and message instance). These files are used to trigger the
reverse forwarding and forwarding mechanisms.
I suggest running 'maildaemon' from an endless loop in a shell
script, so that if anything causes it to crash, it will be
re-spawned. This hasn't happened lately, but used to do so with
some regularity.
FORWARDING FILE
This is ALMOST the same as the RLI/MBL style forwarding files.
The major changes are the elimination of "via" or "v" ahead of the
digipeater names in the connect message and only "G" lines are accepted,
not "F" lines. ALSO, DIGIPEATERS are allowed only on G lines for now.
If you don't have RLI or MBL documentation handy, a skeleton
outline is:
File "segments" begin at the file beginning of after "*** EOF"
and continue to the next "*** EOF".
Each segment may contail CC, S ,R , and G lines as well as the
call letters of all stations/bbses reachable via the path
which is established in this segment.
A "CC" line sends a connect request to NET if in the forwarding mode.
A "S" line is transmitted verbatim over the ax25 link.
An "R" line is compared with the next line received over the
ax25 link and an error is returned if there is no match.
A "G" line gives the call letters of the bbs or node to which to
connect. After the G is A-E, signifying the device on which the
connection is to be attempted, ax0 thru ax4 (A is ax0, B is
ax1 and so on). The "G" line also contains the time window for
forwarding to each bbs. This is not used in this version
because it is assumed that the user will create a CRON script
to initiate forwarding.
Lines containing the call letters of all bbses/stations served by
this connection can follow the "G" line up to the next "*** EOF".
EXAMPLE:
CC PGH03
SC KA3JSD v WB3JSI
RPGH03:WA3YOA-3> Connected to KA3JSD
GA0023C KA3JSD
WA3TVG
KA3JSD
NE3E
WB3AMR
*** EOF
These lines mean, in the same order:
send "C PGH03" to NET, which connects to the netrom node (PGH03).
send "C KA3JSD v WB3JSI" out the link to the net rom node(PGH03).
check reply from node as: "PGH03:WA3YOA-3> Connected to KA3JSD"
connection is on port A (ax0) and is to KA3JSD
WA3TVG,KA3JSD,NE3E and WB3AMR's mail go to this bbs.
*** EOF is the end of the segment.
INITIATING FORWARDING
To initiate forwarding, run the process "trigger". This will
send a forwarding request up the message queue to 'net', causing
spawing of a bbs which will attempt to deliver all unsent messages
in the FWDING directory by initiating ax25 connections to the proper
bbses as defined in the forwarding file "fwd.xo". Be sure trigger
is owned by the proper user ID.
REVERSE FORWARDING
When the bbs receives the "SID" from a system which has initiated
a connect to the bbs ([RLI-Ver6.2-$] or some such), it returns
its own SID and the two then agree that reverse forwarding is
possible. At the end of the incoming mail session, the remote
bbs will transmit "F>", which will cause the XOBBS to scan its
files/directories for mail to the remote bbs and deliver it.
PARAMETER FILE
A parameter file which contains both the next message number to
be assigned and the number of active messages is specified in
CONFIG.XO by PARAMFIL. It is read a log-in and by MAILDAEMON
to assign message numbers.
USER PERMISSIONS,ETC
I run XOBBS and NET under a pseudo-user name of "net". XOBBS has its
setuid bit set so that no matter who runs it, the files created are owned
by "net". NET is started up under the same user name. All files and directories
used are owned by "net". The programs 'maildaemon', 'trigger' and
'makhdrfil' are also owned by 'net' with setuid bit on.
HELP FILES
The help system consists of files with the extent '.hlp'. Put
these in HOMEDIR.
IN CASE OF TROUBLE
Check:
File protections
setuid bit on xobbs, maildaemon, makdhrfil and trigger.
config file(make sure it corresponds to what you really have)
device assignments in "startup.net".
if you get a file creation error message, create the file
yourself by copying /dev/null to it.
SIGNAL USAGE
Signal Name number origin(mode) purpose
SIGUSR1 signal 16 xobbs(rec) fires up maildaemon
MESSAGE QUE USAGE
rmsgqid receive message que...messages TO the bbs FROM net
smsgqid send message que...messages FROM the bbs TO net
crmsgqid control messages TO the bbs FROM net (currently not used)
csmsgqid control messages FROM the bbs TO net.
CONTROL MESSAGE FORMAT
K where xxxx is an ascii bbs pid.... Kill bbs with that pid .
N message FROM forwarder bbs process "go to next bbs in file".
F message from 'trigger' to 'net'.."Spawn the forwarder".
EXAMPLE DIRECTORY STRUCTURE
/U/NEWBBS
-------------------------------------------------------------
mail(dir) temp(dir) fwding(dir) dist fwd.xo (help files)
I I I
(mail messages) (new msgs) (to-be-fwd)
HEADER FILE
The header file will grow until the program 'makhdrfil' is run,
which will write out a new header file and clean out any garbage.
I suggest a 'crontab' entry to run 'makhdrfil' in the wee hours.
If it is run while the bbs is heavily loaded, it may cause
some confusion, with a station logging on during the process of
re-writing the file getting only part of the header file. This
will not effect bbs operation, except that that user will not
be able to list all the messages.
Good Luck -Jim